रिएक्ट लेझी लोडिंग: ऑप्टिमाइझ्ड परफॉर्मन्ससाठी कंपोनेंट कोड स्प्लिटिंग | MLOG | MLOG ); } export default ImageGallery;

आणि Image.js कंपोनेंट:


import React from 'react';

const Image = ({ src, alt }) => {
  return {alt};
};

export default Image;

या उदाहरणात, प्रत्येक इमेजला <Suspense> कंपोनेंटमध्ये रॅप केले आहे, त्यामुळे प्रत्येक इमेज लोड होत असताना एक लोडिंग मेसेज दिसेल. यामुळे इमेजेस डाउनलोड होत असताना संपूर्ण पेज ब्लॉक होण्यापासून प्रतिबंधित होते.

प्रगत तंत्र आणि विचार

1. एरर बाऊंड्रीज (Error Boundaries)

लेझी लोडिंग वापरताना, लोडिंग प्रक्रियेदरम्यान येऊ शकणाऱ्या संभाव्य एरर्स हाताळणे महत्त्वाचे आहे. एरर बाऊंड्रीजचा वापर या एरर्स पकडण्यासाठी आणि एक फॉलबॅक UI दाखवण्यासाठी केला जाऊ शकतो. तुम्ही अशा प्रकारे एक एरर बाऊंड्री कंपोनेंट तयार करू शकता:


import React, { Component } from 'react';

class ErrorBoundary extends Component {
  constructor(props) {
    super(props);
    this.state = { hasError: false };
  }

  static getDerivedStateFromError(error) {
    // Update state so the next render will show the fallback UI.
    return { hasError: true };
  }

  componentDidCatch(error, errorInfo) {
    // You can also log the error to an error reporting service
    console.error(error, errorInfo);
  }

  render() {
    if (this.state.hasError) {
      // You can render any custom fallback UI
      return 

Something went wrong.

; } return this.props.children; } } export default ErrorBoundary;

नंतर <Suspense> कंपोनेंटला <ErrorBoundary> ने रॅप करा:



  Loading...}>
    
  


जर MyComponent लोड करताना एरर आली, तर <ErrorBoundary> ती पकडेल आणि फॉलबॅक UI दाखवेल.

2. सर्वर-साइड रेंडरिंग (SSR) आणि लेझी लोडिंग

लेझी लोडिंगचा वापर सर्वर-साइड रेंडरिंग (SSR) सोबत तुमच्या ॲप्लिकेशनचा इनिशियल लोड टाइम सुधारण्यासाठी देखील केला जाऊ शकतो. तथापि, यासाठी काही अतिरिक्त कॉन्फिगरेशन आवश्यक आहे. तुम्हाला हे सुनिश्चित करावे लागेल की सर्वर डायनॅमिक इम्पोर्ट्स योग्यरित्या हाताळू शकतो आणि लेझी-लोडेड कंपोनेंट्स क्लायंट-साइडवर योग्यरित्या हायड्रेट झाले आहेत.

Next.js आणि Gatsby.js सारखी टूल्स SSR वातावरणात लेझी लोडिंग आणि कोड स्प्लिटिंगसाठी अंगभूत समर्थन प्रदान करतात, ज्यामुळे प्रक्रिया खूप सोपी होते.

3. लेझी-लोडेड कंपोनेंट्स प्रीलोड करणे

काही प्रकरणांमध्ये, तुम्हाला लेझी-लोडेड कंपोनेंटची प्रत्यक्षात गरज पडण्यापूर्वीच तो प्रीलोड करायचा असेल. हे अशा कंपोनेंट्ससाठी उपयुक्त असू शकते जे लवकरच रेंडर होण्याची शक्यता आहे, जसे की जे कंपोनेंट्स फोल्डच्या खाली आहेत परंतु स्क्रोल करून व्ह्यूमध्ये येण्याची शक्यता आहे. तुम्ही import() फंक्शन मॅन्युअली कॉल करून कंपोनेंट प्रीलोड करू शकता:


import('./MyComponent'); // MyComponent प्रीलोड करा

यामुळे कंपोनेंट बॅकग्राउंडमध्ये लोड होण्यास सुरुवात होईल, त्यामुळे जेव्हा तो प्रत्यक्षात रेंडर होईल तेव्हा तो अधिक लवकर उपलब्ध होईल.

4. वेबपॅक मॅजिक कमेंट्ससह डायनॅमिक इम्पोर्ट्स

वेबपॅकच्या "मॅजिक कमेंट्स" जनरेट केलेल्या कोड चंक्सची नावे कस्टमाइझ करण्याचा एक मार्ग प्रदान करतात. हे तुमच्या ॲप्लिकेशनच्या बंडल स्ट्रक्चरचे डीबगिंग आणि विश्लेषण करण्यासाठी उपयुक्त ठरू शकते. उदाहरणार्थ:


const MyComponent = React.lazy(() => import(/* webpackChunkName: "my-component" */ './MyComponent'));

यामुळे जेनेरिक नावाऐवजी "my-component.js" (किंवा तत्सम) नावाचा कोड चंक तयार होईल.

5. सामान्य चुका टाळणे

वास्तविक-जगातील उदाहरणे आणि उपयोग

रिएक्ट ॲप्लिकेशन्सचा परफॉर्मन्स सुधारण्यासाठी लेझी लोडिंग विविध परिस्थितीत लागू केले जाऊ शकते. येथे काही उदाहरणे आहेत:

उदाहरण: आंतरराष्ट्रीय ई-कॉमर्स वेबसाइट

एका ई-कॉमर्स वेबसाइटची कल्पना करा जी जागतिक स्तरावर उत्पादने विकते. वेगवेगळ्या देशांमध्ये वेगवेगळी चलने, भाषा आणि उत्पादन कॅटलॉग असू शकतात. प्रत्येक देशासाठी सर्व डेटा सुरुवातीलाच लोड करण्याऐवजी, तुम्ही वापरकर्त्याच्या स्थानाशी संबंधित डेटा फक्त तेव्हाच लोड करण्यासाठी लेझी लोडिंग वापरू शकता जेव्हा ते साइटला भेट देतात.


const CurrencyFormatter = React.lazy(() => import(`./CurrencyFormatter/${userCountry}`))
const ProductCatalog = React.lazy(() => import(`./ProductCatalog/${userCountry}`))

function ECommerceSite() {
  const userCountry = getUserCountry(); // Function to determine user's country

  return (
    Loading content for your region...}>
      
      
    
  );
}

निष्कर्ष

लेझी लोडिंग आणि कंपोनेंट कोड स्प्लिटिंग ही रिएक्ट ॲप्लिकेशन्सचा परफॉर्मन्स ऑप्टिमाइझ करण्यासाठी शक्तिशाली तंत्रे आहेत. कंपोनेंट्स फक्त गरज असेल तेव्हाच लोड करून, तुम्ही इनिशियल लोड टाइम लक्षणीयरीत्या कमी करू शकता, वापरकर्ता अनुभव सुधारू शकता आणि तुमचा SEO वाढवू शकता. रिएक्टचे अंगभूत React.lazy() आणि <Suspense> कंपोनेंट्स तुमच्या प्रोजेक्ट्समध्ये लेझी लोडिंग लागू करणे सोपे करतात. जागतिक प्रेक्षकांसाठी जलद, अधिक प्रतिसाद देणारे आणि अधिक आकर्षक वेब ॲप्लिकेशन्स तयार करण्यासाठी ही तंत्रे स्वीकारा.

लेझी लोडिंग लागू करताना नेहमी वापरकर्त्याच्या अनुभवाचा विचार करा. माहितीपूर्ण फॉलबॅक UIs प्रदान करा, संभाव्य एरर्स व्यवस्थित हाताळा आणि इच्छित परिणाम मिळत असल्याची खात्री करण्यासाठी तुमच्या ॲप्लिकेशनच्या परफॉर्मन्सचे काळजीपूर्वक विश्लेषण करा. वेगवेगळ्या दृष्टिकोनांसह प्रयोग करण्यास घाबरू नका आणि तुमच्या विशिष्ट गरजांसाठी सर्वोत्तम उपाय शोधा.